package com.sat.client.bean

import android.util.Log

object FileItemUtils {

    /**
     * 根据路径查找FileItem
     * @param root 根FileItem
     * @param path 查找的路径
     * @return 查找到的FileItem，如果未找到则返回null
     */
    fun findFileItemByPath(root: FileItem, path: String): FileItem? {
        if (root.path == path) {
            return root
        }

        root.contents?.forEach { item ->
            val result = findFileItemByPath(item, path)
            if (result != null) {
                return result
            }
        }
        return null
    }

    /**
     * 返回指定FileItem对象的父级目录
     * @param root 根FileItem
     * @param target 查找的FileItem对象
     * @return 父级FileItem对象，如果未找到则返回null
     */
    fun getParentFileItem(root: FileItem, target: FileItem): FileItem? {
        root.contents?.forEach { item ->
            if (item == target) {
                return root
            }
            val parent = getParentFileItem(item, target)
            if (parent != null) {
                return parent
            }
        }
        return null
    }
}